ASX200_data <- read.csv(file = 'C:/Users/humay/Downloads/ASX200.csv')
ASX200_data$Date <- as.Date(ASX200_data$Date, format = "%m/%d/%Y")
head(ASX200_data)
ASX200_data<- ASX200_data[order(ASX200_data$Date),]
head(ASX200_data)
library(vars)
library(mFilter)
library(tseries)
library(TSstudio)
Warning: package ‘TSstudio’ was built under R version 4.1.3
library(forecast)
Warning: package ‘forecast’ was built under R version 4.1.3
This is forecast 8.16
Need help getting started? Try the online textbook FPP:
http://otexts.com/fpp2/
library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
method from
print.tbl_lazy
print.tbl_sql
-- Attaching packages --------------------------------------------------------- tidyverse 1.3.1 --
v ggplot2 3.3.5 v purrr 0.3.4
v tibble 3.1.6 v dplyr 1.0.8
v tidyr 1.2.0 v stringr 1.4.0
v readr 2.1.2 v forcats 0.5.1
-- Conflicts ------------------------------------------------------------ tidyverse_conflicts() --
x stringr::boundary() masks strucchange::boundary()
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
x dplyr::select() masks MASS::select()


ts_plot(data_1)
ts_plot(data_2)
pp.test(data_1)
Phillips-Perron Unit Root Test
data: data_1
Dickey-Fuller Z(alpha) = -24.591, Truncation lag parameter = 9, p-value = 0.02666
alternative hypothesis: stationary
pp.test(data_2)
Phillips-Perron Unit Root Test
data: data_2
Dickey-Fuller Z(alpha) = -24.573, Truncation lag parameter = 9, p-value = 0.02679
alternative hypothesis: stationary
lagselect <- VARselect(data_1, lag.max = 15, type = "const")
lagselect$selection
AIC(n) HQ(n) SC(n) FPE(n)
13 12 2 13
lagselect <- VARselect(data_2, lag.max = 15, type = "const")
lagselect$selection
AIC(n) HQ(n) SC(n) FPE(n)
12 1 1 12
lagselect <- VARselect(v1, lag.max = 15, type = "const")
lagselect$selection
AIC(n) HQ(n) SC(n) FPE(n)
15 8 2 15
Model1 <- VAR(v1, p = 2, type = "const", season = NULL, exog = NULL)
summary(Model1)
VAR Estimation Results:
=========================
Endogenous variables: ASX200, CAC40
Deterministic variables: const
Sample size: 3651
Log Likelihood: -37573.13
Roots of the characteristic polynomial:
0.9984 0.9838 0.1203 0.04106
Call:
VAR(y = v1, p = 2, type = "const", exogen = NULL)
Estimation results for equation ASX200:
=======================================
ASX200 = ASX200.l1 + CAC40.l1 + ASX200.l2 + CAC40.l2 + const
Estimate Std. Error t value Pr(>|t|)
ASX200.l1 0.81750 0.01707 47.879 < 2e-16 ***
CAC40.l1 0.29535 0.01611 18.336 < 2e-16 ***
ASX200.l2 0.16904 0.01701 9.938 < 2e-16 ***
CAC40.l2 -0.28407 0.01617 -17.569 < 2e-16 ***
const 22.03230 6.13144 3.593 0.000331 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 41.1 on 3646 degrees of freedom
Multiple R-Squared: 0.9966, Adjusted R-squared: 0.9966
F-statistic: 2.706e+05 on 4 and 3646 DF, p-value: < 2.2e-16
Estimation results for equation CAC40:
======================================
CAC40 = ASX200.l1 + CAC40.l1 + ASX200.l2 + CAC40.l2 + const
Estimate Std. Error t value Pr(>|t|)
ASX200.l1 -0.01716 0.01887 -0.909 0.363
CAC40.l1 1.00331 0.01780 56.364 <2e-16 ***
ASX200.l2 0.02367 0.01880 1.259 0.208
CAC40.l2 -0.01108 0.01787 -0.620 0.535
const 0.33782 6.77564 0.050 0.960
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 45.42 on 3646 degrees of freedom
Multiple R-Squared: 0.9965, Adjusted R-squared: 0.9965
F-statistic: 2.588e+05 on 4 and 3646 DF, p-value: < 2.2e-16
Covariance matrix of residuals:
ASX200 CAC40
ASX200 1689 707
CAC40 707 2063
Correlation matrix of residuals:
ASX200 CAC40
ASX200 1.0000 0.3787
CAC40 0.3787 1.0000
Serial1 <- serial.test(Model1, lags.pt = 5, type = "PT.asymptotic")
Serial1
Portmanteau Test (asymptotic)
data: Residuals of VAR object Model1
Chi-squared = 64.586, df = 12, p-value = 3.251e-09
Arch1 <- arch.test(Model1, lags.multi = 15, multivariate.only = TRUE)
Arch1
ARCH (multivariate)
data: Residuals of VAR object Model1
Chi-squared = 3686.1, df = 135, p-value < 2.2e-16
Norm1 <- normality.test(Model1, multivariate.only = TRUE)
Norm1
$JB
JB-Test (multivariate)
data: Residuals of VAR object Model1
Chi-squared = 83423, df = 4, p-value < 2.2e-16
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object Model1
Chi-squared = 1415, df = 2, p-value < 2.2e-16
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object Model1
Chi-squared = 82008, df = 2, p-value < 2.2e-16

GrangerASX200<- causality(Model1, cause = "ASX200")
GrangerASX200
$Granger
Granger causality H0: ASX200 do not Granger-cause CAC40
data: VAR object Model1
F-Test = 2.2124, df1 = 2, df2 = 7292, p-value = 0.1095
$Instant
H0: No instantaneous causality between: ASX200 and CAC40
data: VAR object Model1
Chi-squared = 457.87, df = 1, p-value < 2.2e-16
GrangerCAC40 <- causality(Model1, cause = "CAC40")
GrangerCAC40
$Granger
Granger causality H0: CAC40 do not Granger-cause ASX200
data: VAR object Model1
F-Test = 170.75, df1 = 2, df2 = 7292, p-value < 2.2e-16
$Instant
H0: No instantaneous causality between: CAC40 and ASX200
data: VAR object Model1
Chi-squared = 457.87, df = 1, p-value < 2.2e-16




forecast <- predict(Model1, n.ahead = 90, ci = 0.95)
fanchart(forecast, names = "ASX200", main = "Fanchart for ASX200", xlab = "Horizon", ylab = "ASx200")
fanchart(forecast, names = "CAC40", main = "Fanchart for CAC40", xlab = "Horizon", ylab = "CAC40")
forecast
$ASX200
fcst lower upper CI
[1,] 5879.716 5799.155 5960.276 80.56049
[2,] 5880.863 5767.593 5994.133 113.27002
[3,] 5879.393 5741.615 6017.170 137.77749
[4,] 5878.265 5719.846 6036.685 158.41960
[5,] 5877.111 5700.606 6053.617 176.50508
[6,] 5875.976 5683.211 6068.741 192.76539
[7,] 5874.853 5667.221 6082.486 207.63234
[8,] 5873.744 5652.354 6095.134 221.38991
[9,] 5872.648 5638.411 6106.884 234.23641
[10,] 5871.564 5625.247 6117.881 246.31697
[11,] 5870.493 5612.751 6128.235 257.74165
[12,] 5869.434 5600.838 6138.031 268.59632
[13,] 5868.388 5589.438 6147.337 278.94957
[14,] 5867.353 5578.496 6156.211 288.85720
[15,] 5866.331 5567.965 6164.696 298.36537
[16,] 5865.320 5557.807 6172.833 307.51279
[17,] 5864.320 5547.988 6180.652 316.33233
[18,] 5863.332 5538.480 6188.184 324.85216
[19,] 5862.355 5529.258 6195.451 333.09665
[20,] 5861.388 5520.301 6202.475 341.08708
[21,] 5860.433 5511.591 6209.275 348.84215
[22,] 5859.488 5503.110 6215.866 356.37838
[23,] 5858.553 5494.843 6222.264 363.71049
[24,] 5857.629 5486.778 6228.481 370.85164
[25,] 5856.715 5478.901 6234.529 377.81365
[26,] 5855.811 5471.204 6240.418 384.60720
[27,] 5854.917 5463.675 6246.158 391.24195
[28,] 5854.032 5456.305 6251.759 397.72672
[29,] 5853.157 5449.087 6257.226 404.06954
[30,] 5852.291 5442.013 6262.568 410.27777
[31,] 5851.434 5435.076 6267.792 416.35817
[32,] 5850.586 5428.269 6272.903 422.31697
[33,] 5849.748 5421.588 6277.908 428.15991
[34,] 5848.918 5415.026 6282.810 433.89232
[35,] 5848.097 5408.578 6287.616 439.51914
[36,] 5847.284 5402.239 6292.329 445.04496
[37,] 5846.480 5396.006 6296.954 450.47404
[38,] 5845.684 5389.873 6301.494 455.81039
[39,] 5844.896 5383.838 6305.954 461.05774
[40,] 5844.116 5377.896 6310.336 466.21958
[41,] 5843.344 5372.045 6314.643 471.29918
[42,] 5842.580 5366.280 6318.880 476.29963
[43,] 5841.823 5360.600 6323.047 481.22382
[44,] 5841.074 5355.000 6327.149 486.07449
[45,] 5840.333 5349.479 6331.187 490.85420
[46,] 5839.599 5344.033 6335.164 495.56538
[47,] 5838.872 5338.661 6339.082 500.21034
[48,] 5838.152 5333.360 6342.943 504.79125
[49,] 5837.439 5328.128 6346.749 509.31017
[50,] 5836.733 5322.964 6350.502 513.76905
[51,] 5836.033 5317.864 6354.203 518.16975
[52,] 5835.341 5312.827 6357.855 522.51404
[53,] 5834.655 5307.851 6361.458 526.80359
[54,] 5833.975 5302.935 6365.015 531.04000
[55,] 5833.302 5298.077 6368.527 535.22479
[56,] 5832.635 5293.275 6371.994 539.35942
[57,] 5831.974 5288.529 6375.419 543.44527
[58,] 5831.320 5283.836 6378.803 547.48366
[59,] 5830.671 5279.195 6382.147 551.47587
[60,] 5830.028 5274.605 6385.451 555.42308
[61,] 5829.391 5270.065 6388.718 559.32648
[62,] 5828.760 5265.573 6391.947 563.18716
[63,] 5828.135 5261.129 6395.141 567.00619
[64,] 5827.515 5256.730 6398.299 570.78458
[65,] 5826.900 5252.377 6401.424 574.52332
[66,] 5826.291 5248.068 6404.515 578.22335
[67,] 5825.688 5243.802 6407.573 581.88556
[68,] 5825.089 5239.579 6410.600 585.51083
[69,] 5824.496 5235.396 6413.596 589.09998
[70,] 5823.908 5231.254 6416.562 592.65382
[71,] 5823.325 5227.152 6419.498 596.17313
[72,] 5822.747 5223.088 6422.405 599.65865
[73,] 5822.173 5219.062 6425.284 603.11109
[74,] 5821.605 5215.074 6428.136 606.53115
[75,] 5821.041 5211.121 6430.960 609.91949
[76,] 5820.482 5207.205 6433.759 613.27675
[77,] 5819.927 5203.324 6436.531 616.60357
[78,] 5819.377 5199.477 6439.278 619.90053
[79,] 5818.832 5195.663 6442.000 623.16823
[80,] 5818.291 5191.883 6444.698 626.40721
[81,] 5817.754 5188.136 6447.372 629.61803
[82,] 5817.221 5184.420 6450.022 632.80120
[83,] 5816.693 5180.736 6452.650 635.95724
[84,] 5816.169 5177.082 6455.255 639.08663
[85,] 5815.648 5173.459 6457.838 642.18986
[86,] 5815.132 5169.865 6460.400 645.26739
[87,] 5814.620 5166.301 6462.940 648.31965
[88,] 5814.112 5162.765 6465.459 651.34709
[89,] 5813.608 5159.257 6467.958 654.35013
[90,] 5813.107 5155.778 6470.436 657.32918
$CAC40
fcst lower upper CI
[1,] 4934.335 4845.311 5023.360 89.02463
[2,] 4935.043 4809.298 5060.788 125.74492
[3,] 4935.319 4781.869 5088.768 153.44955
[4,] 4935.640 4758.925 5112.356 176.71513
[5,] 4935.944 4738.859 5133.030 197.08565
[6,] 4936.239 4720.847 5151.631 215.39173
[7,] 4936.523 4704.399 5168.648 232.12468
[8,] 4936.798 4689.192 5184.404 247.60631
[9,] 4937.063 4675.002 5199.123 262.06089
[10,] 4937.318 4661.665 5212.970 275.65224
[11,] 4937.563 4649.059 5226.068 288.50444
[12,] 4937.800 4637.085 5238.514 300.71421
[13,] 4938.027 4625.668 5250.385 312.35867
[14,] 4938.245 4614.745 5261.746 323.50056
[15,] 4938.454 4604.263 5272.646 334.19174
[16,] 4938.655 4594.180 5283.131 344.47565
[17,] 4938.848 4584.458 5293.237 354.38918
[18,] 4939.031 4575.067 5302.995 363.96392
[19,] 4939.207 4565.980 5312.434 373.22720
[20,] 4939.375 4557.172 5321.578 382.20288
[21,] 4939.534 4548.622 5330.446 390.91190
[22,] 4939.686 4540.313 5339.059 399.37280
[23,] 4939.830 4532.228 5347.432 407.60207
[24,] 4939.967 4524.352 5355.581 415.61444
[25,] 4940.096 4516.673 5363.519 423.42318
[26,] 4940.218 4509.178 5371.258 431.04025
[27,] 4940.333 4501.856 5378.809 438.47649
[28,] 4940.441 4494.699 5386.182 445.74179
[29,] 4940.542 4487.696 5393.387 452.84516
[30,] 4940.636 4480.841 5400.430 459.79485
[31,] 4940.723 4474.125 5407.321 466.59846
[32,] 4940.804 4467.541 5414.067 473.26298
[33,] 4940.878 4461.083 5420.673 479.79488
[34,] 4940.946 4454.746 5427.147 486.20014
[35,] 4941.008 4448.524 5433.493 492.48431
[36,] 4941.064 4442.412 5439.717 498.65257
[37,] 4941.114 4436.404 5445.824 504.70974
[38,] 4941.158 4430.498 5451.818 510.66031
[39,] 4941.196 4424.687 5457.704 516.50849
[40,] 4941.228 4418.970 5463.487 522.25824
[41,] 4941.255 4413.342 5469.169 527.91326
[42,] 4941.277 4407.800 5474.754 533.47703
[43,] 4941.293 4402.340 5480.246 538.95283
[44,] 4941.303 4396.960 5485.647 544.34376
[45,] 4941.309 4391.656 5490.962 549.65273
[46,] 4941.309 4386.427 5496.192 554.88251
[47,] 4941.305 4381.269 5501.340 560.03570
[48,] 4941.295 4376.180 5506.410 565.11479
[49,] 4941.281 4371.159 5511.403 570.12212
[50,] 4941.262 4366.202 5516.322 575.05993
[51,] 4941.238 4361.308 5521.168 579.93032
[52,] 4941.210 4356.474 5525.945 584.73532
[53,] 4941.177 4351.700 5530.654 589.47685
[54,] 4941.139 4346.983 5535.296 594.15674
[55,] 4941.098 4342.321 5539.875 598.77673
[56,] 4941.052 4337.713 5544.390 603.33850
[57,] 4941.002 4333.158 5548.845 607.84362
[58,] 4940.948 4328.654 5553.241 612.29364
[59,] 4940.890 4324.200 5557.580 616.69001
[60,] 4940.827 4319.793 5561.861 621.03411
[61,] 4940.761 4315.434 5566.089 625.32730
[62,] 4940.691 4311.121 5570.262 629.57084
[63,] 4940.618 4306.852 5574.384 633.76599
[64,] 4940.541 4302.627 5578.455 637.91390
[65,] 4940.460 4298.444 5582.475 642.01573
[66,] 4940.375 4294.303 5586.448 646.07256
[67,] 4940.287 4290.202 5590.373 650.08544
[68,] 4940.196 4286.141 5594.251 654.05539
[69,] 4940.101 4282.118 5598.085 657.98337
[70,] 4940.003 4278.133 5601.874 661.87033
[71,] 4939.902 4274.185 5605.619 665.71716
[72,] 4939.798 4270.273 5609.323 669.52474
[73,] 4939.691 4266.397 5612.984 673.29390
[74,] 4939.580 4262.555 5616.606 677.02547
[75,] 4939.467 4258.746 5620.187 680.72021
[76,] 4939.350 4254.971 5623.729 684.37890
[77,] 4939.231 4251.229 5627.233 688.00226
[78,] 4939.109 4247.518 5630.700 691.59100
[79,] 4938.984 4243.838 5634.130 695.14580
[80,] 4938.856 4240.189 5637.524 698.66733
[81,] 4938.726 4236.570 5640.882 702.15622
[82,] 4938.593 4232.980 5644.206 705.61310
[83,] 4938.458 4229.419 5647.496 709.03856
[84,] 4938.320 4225.886 5650.753 712.43320
[85,] 4938.179 4222.382 5653.977 715.79758
[86,] 4938.036 4218.904 5657.169 719.13224
[87,] 4937.891 4215.453 5660.329 722.43772
[88,] 4937.744 4212.029 5663.458 725.71453
[89,] 4937.594 4208.630 5666.557 728.96318
[90,] 4937.442 4205.257 5669.626 732.18414
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCiMgSW1wb3J0IHRoZSBkYXRhIGFuZCBsb29rIGF0IHRoZSBmaXJzdCBzaXggcm93cw0KQVNYMjAwX2RhdGEgPC0gcmVhZC5jc3YoZmlsZSA9ICdDOi9Vc2Vycy9odW1heS9Eb3dubG9hZHMvQVNYMjAwLmNzdicpDQpBU1gyMDBfZGF0YSREYXRlIDwtIGFzLkRhdGUoQVNYMjAwX2RhdGEkRGF0ZSwgZm9ybWF0ID0gIiVtLyVkLyVZIikNCmhlYWQoQVNYMjAwX2RhdGEpDQpBU1gyMDBfZGF0YTwtIEFTWDIwMF9kYXRhW29yZGVyKEFTWDIwMF9kYXRhJERhdGUpLF0NCmhlYWQoQVNYMjAwX2RhdGEpDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KHZhcnMpDQpsaWJyYXJ5KG1GaWx0ZXIpDQpsaWJyYXJ5KHRzZXJpZXMpDQpsaWJyYXJ5KFRTc3R1ZGlvKQ0KbGlicmFyeShmb3JlY2FzdCkNCmxpYnJhcnkodGlkeXZlcnNlKQ0KYGBgDQpgYGB7cn0NCmRhdGFfMSA8LSBBU1gyMDBfZGF0YSAlPiUgc2VsZWN0KERhdGUsQVNYMjAwKSAlPiUgcmVuYW1lKGluZGV4PURhdGUsdmFsdWU9QVNYMjAwKQ0KZGF0YV8xIDwtIHRzKGRhdGFfMSR2YWx1ZSxmcmVxdWVuY3k9MzY1LCBzdGFydD1jKDIwMTAsIDcpKQ0KYXV0b3Bsb3QoZGF0YV8xKQ0KYGBgDQpgYGB7cn0NCmRhdGFfMiA8LSBBU1gyMDBfZGF0YSAlPiUgc2VsZWN0KERhdGUsQ0FDNDApICU+JSByZW5hbWUoaW5kZXg9RGF0ZSx2YWx1ZT1DQUM0MCkNCmRhdGFfMiA8LSB0cyhkYXRhXzIkdmFsdWUsZnJlcXVlbmN5PTM2NSwgc3RhcnQ9YygyMDEwLCA3KSkNCmF1dG9wbG90KGRhdGFfMikNCmBgYA0KDQoNCmBgYHtyfQ0KdHNfcGxvdChkYXRhXzEpDQp0c19wbG90KGRhdGFfMikNCmBgYA0KDQpgYGB7cn0NCnBwLnRlc3QoZGF0YV8xKQ0KcHAudGVzdChkYXRhXzIpDQpgYGANCmBgYHtyfQ0KbGFnc2VsZWN0IDwtIFZBUnNlbGVjdChkYXRhXzEsIGxhZy5tYXggPSAxNSwgdHlwZSA9ICJjb25zdCIpDQpsYWdzZWxlY3Qkc2VsZWN0aW9uDQpgYGANCg0KYGBge3J9DQpsYWdzZWxlY3QgPC0gVkFSc2VsZWN0KGRhdGFfMiwgbGFnLm1heCA9IDE1LCB0eXBlID0gImNvbnN0IikNCmxhZ3NlbGVjdCRzZWxlY3Rpb24NCmBgYA0KYGBge3J9DQp2MSA8LSBjYmluZChkYXRhXzEsIGRhdGFfMikNCmNvbG5hbWVzKHYxKSA8LSBjYmluZCgiQVNYMjAwIiwiQ0FDNDAiKQ0KYGBgDQoNCmBgYHtyfQ0KbGFnc2VsZWN0IDwtIFZBUnNlbGVjdCh2MSwgbGFnLm1heCA9IDE1LCB0eXBlID0gImNvbnN0IikNCmxhZ3NlbGVjdCRzZWxlY3Rpb24NCmBgYA0KDQpgYGB7cn0NCk1vZGVsMSA8LSBWQVIodjEsIHAgPSAyLCB0eXBlID0gImNvbnN0Iiwgc2Vhc29uID0gTlVMTCwgZXhvZyA9IE5VTEwpIA0Kc3VtbWFyeShNb2RlbDEpDQpgYGANCg0KYGBge3J9DQpTZXJpYWwxIDwtIHNlcmlhbC50ZXN0KE1vZGVsMSwgbGFncy5wdCA9IDUsIHR5cGUgPSAiUFQuYXN5bXB0b3RpYyIpDQpTZXJpYWwxDQpgYGANCg0KYGBge3J9DQpBcmNoMSA8LSBhcmNoLnRlc3QoTW9kZWwxLCBsYWdzLm11bHRpID0gMTUsIG11bHRpdmFyaWF0ZS5vbmx5ID0gVFJVRSkNCkFyY2gxDQpgYGANCg0KYGBge3J9DQpOb3JtMSA8LSBub3JtYWxpdHkudGVzdChNb2RlbDEsIG11bHRpdmFyaWF0ZS5vbmx5ID0gVFJVRSkNCk5vcm0xDQpgYGANCmBgYHtyfQ0KU3RhYmlsaXR5MSA8LSBzdGFiaWxpdHkoTW9kZWwxLCB0eXBlID0gIk9MUy1DVVNVTSIpDQpwbG90KFN0YWJpbGl0eTEpDQpgYGANCmBgYHtyfQ0KR3JhbmdlckFTWDIwMDwtIGNhdXNhbGl0eShNb2RlbDEsIGNhdXNlID0gIkFTWDIwMCIpDQpHcmFuZ2VyQVNYMjAwDQpHcmFuZ2VyQ0FDNDAgPC0gY2F1c2FsaXR5KE1vZGVsMSwgY2F1c2UgPSAiQ0FDNDAiKQ0KR3JhbmdlckNBQzQwDQpgYGANCg0KYGBge3J9DQpSUlBpcmYgPC0gaXJmKE1vZGVsMSwgaW1wdWxzZSA9ICJBU1gyMDAiLCByZXNwb25zZSA9ICJBU1gyMDAiLCBuLmFoZWFkID0gMjAsIGJvb3QgPSBUUlVFKQ0KcGxvdChSUlBpcmYsIHlsYWIgPSAiQVNYMjAwIiwgbWFpbiA9ICJBU1gyMDAncyBzaG9jayB0byBBU1gyMDAiKQ0KTTFpcmYgPC0gaXJmKE1vZGVsMSwgaW1wdWxzZSA9ICJDQUM0MCIsIHJlc3BvbnNlID0gIkNBQzQwIiwgbi5haGVhZCA9IDIwLCBib290ID0gVFJVRSkNCnBsb3QoTTFpcmYsIHlsYWIgPSAiQ0FDNDAiLCBtYWluID0gIkNBQzQwJ3Mgc2hvY2sgdG8gQ0FDNDAiKQ0KYGBgDQpgYGB7cn0NCmZvcmVjYXN0IDwtIHByZWRpY3QoTW9kZWwxLCBuLmFoZWFkID0gOTAsIGNpID0gMC45NSkNCmZhbmNoYXJ0KGZvcmVjYXN0LCBuYW1lcyA9ICJBU1gyMDAiLCBtYWluID0gIkZhbmNoYXJ0IGZvciBBU1gyMDAiLCB4bGFiID0gIkhvcml6b24iLCB5bGFiID0gIkFTeDIwMCIpDQpmYW5jaGFydChmb3JlY2FzdCwgbmFtZXMgPSAiQ0FDNDAiLCBtYWluID0gIkZhbmNoYXJ0IGZvciBDQUM0MCIsIHhsYWIgPSAiSG9yaXpvbiIsIHlsYWIgPSAiQ0FDNDAiKQ0KZm9yZWNhc3QNCmBgYA0KDQo=